package ComoViajo;

import java.util.ArrayList;

public class ViajeEnColectivo {
	private final static int DEMORA_POR_ZONA_CONGESTIONADA=2;
	private ContenedorDeZonas zonas;
	private String linea;
	private Direccion origen;
	private Direccion destino;
	
	
	
	public ContenedorDeZonas getZonas() {
		return zonas;
	}



	public void setZonas(ContenedorDeZonas zonas) {
		this.zonas = zonas;
	}



	public String getLinea() {
		return linea;
	}



	public void setLinea(String linea) {
		this.linea = linea;
	}



	public Direccion getOrigen() {
		return origen;
	}



	public void setOrigen(Direccion origen) {
		this.origen = origen;
	}



	public Direccion getDestino() {
		return destino;
	}



	public void setDestino(Direccion destino) {
		this.destino = destino;
	}



	public int calcularDemora (ModuloExternoMapaDeTransporte mapaDeTransporte,MockSistemaExternoEstadoDelTransito estadoDelTransito){
	ArrayList <Direccion> direccionesCongestionadasDelViaje= mapaDeTransporte.getDireccionesCongestionadas(mapaDeTransporte.getRecorrido(this.linea, this.origen, this.destino), estadoDelTransito.getDirecciones());
	ArrayList <Zona> zonasCongestionadas= new ArrayList <Zona> ();
	Zona zonaAux;
	for (Direccion dir: direccionesCongestionadasDelViaje){
		try{
		zonaAux=zonas.queZonaContieneLaDireccion(dir);
			if (!zonasCongestionadas.contains(zonaAux)){
				zonasCongestionadas.add(zonaAux);
			}
		}
		catch (NoSeEncuentraDireccionException e){
			System.out.println("No se encuentra la direccion " + dir + " en ninguna zona");
		}
			
	}
	return zonasCongestionadas.size()* DEMORA_POR_ZONA_CONGESTIONADA;
	
	}
}
